'''
def 函数名称(变量):#变量也可以省略
    代码块
    return 返回值#如果没有返回值则可以不写
'''
# 位置参数
def user_info(name,age,sex):
    print(f"姓名：{name}，年龄：{age}，性别：{sex}")
user_info("小明",12,'男')
# 关键字参数-可以打乱顺序上传
user_info(name="小明",sex='男',age=12)
# 缺省参数（默认值）
def user_info(name,age,sex='男'):
    print(f"姓名：{name}，年龄：{age}，性别：{sex}")
user_info("小明",12)
# 不定长参数 *args，默认是元组形式-位置不定长
def user_info(*args):
    print(f"类型为：{type(args)}，{args}")
user_info(1,2,3,'小明','男孩')
# 不定长参数 **kwargs,key=value，默认为字典-关键字不定长
def user_info(**kwargs):
    print(f"类型为：{type(kwargs)}，{kwargs}")
user_info(name='小明',gender='男孩')

# 返回值-计算字符串的长度
def len_str(str):
    count = 0
    for index in str:
        count += 1
    print(f"{str}字符串长度为：{count}")
    return count
len_str("Hello World!")

def get_user_info():
    name = "Alice"
    age = 25
    gender = "female"
    return name, age, gender  # 本质是返回元组 (name, age, gender)

# 调用函数，直接接收多个返回值（自动解包）
user_name, user_age, user_gender = get_user_info()

print(user_name)
print(user_age)
print(user_gender)

user_info = get_user_info()
print(type(user_info))
print(user_info)

list = [64, 34, 25, 12, 22, 11, 90]
print(list)
def bubble_sort(arr):
    n = len(arr)
    temp = arr[0]
    for i in range(n - 1):
        for j in range(n - 1 - i):
            if arr[j] > arr[j + 1]:
                temp = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = temp
    return arr
print(bubble_sort(list))
